<?xml version="1.0" encoding="utf-8" ?> 
<Feature id="RuleCachingFeature" name="Rule Caching Feature">
	<Description>
		<summary>Provides a mechanism for specifying that the results of executing a rule should be cached.  That cached value
		should be returned on all subsequent requests until the cached item expires and is removed from cache.</summary>
	</Description>
	
	<Dependencies>
		<Dependency type="binary">Swaf.BizRule.CacheDecorator.dll</Dependency>
		<import>BaseFrameworkFeature.xml</import>
	</Dependencies>

	<CacheMacros>
		<Macro name="DefaultCacheExpiration">expire after 15 minutes no use</Macro>
	</CacheMacros>

	<BusinessRules visibility="public">
		<BusinessRule name="clearCache">
			<LocalClass name="Swaf.BizRule.CacheDecorator.RuleCacheDecorator,SwafCore.BizRule.CacheDecorator" />
			<Description><summary>The clearCache rule will clear either the app or session cache depending on the value provided for 
			the scope parameter.  To clear the application cache use "app".  To clear the session cache use "session"</summary></Description>
		</BusinessRule>
	</BusinessRules>

	<ClassFactory id="BizRuleDecorators">
		<Class name="cache" type="Swaf.BizRule.CacheDecorator.RuleCacheDecorator,SwafCore.BizRule.CacheDecorator" />
		<Class name="cacheExpiration" type="Swaf.GenericDecorator,SwafCore" />
		<Class name="cacheKey" type="Swaf.GenericDecorator,SwafCore" />
	</ClassFactory>
</Feature>